home *** CD-ROM | disk | FTP | other *** search
/ Large Pack of OldSkool DOS MOD Trackers / buzzmachines_massive.exe / Dev / Geoffroy Notefilter SourceCode / BuzzParameterQ.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2002-05-25  |  1.5 KB  |  53 lines

  1. // BuzzParameterQ.cpp: implementation of the BuzzParameterQ class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4.  
  5. #include "BuzzParameterQ.h"
  6.  
  7. //////////////////////////////////////////////////////////////////////
  8. // Construction/Destruction
  9. //////////////////////////////////////////////////////////////////////
  10.  
  11. word BuzzParameterQ::MIN_SLIDER_VALUE = 0;
  12. word BuzzParameterQ::MAX_SLIDER_VALUE = 0xFFFE;
  13. word BuzzParameterQ::UNCHANGED_SLIDER_VALUE = 0xFFFF;
  14. word BuzzParameterQ::INIT_SLIDER_VALUE = 0;
  15.  
  16. BuzzParameterQ::BuzzParameterQ() : BuzzParameter<word,float>()
  17. {
  18.     MIN_REAL_VALUE = 1.0f;
  19.     MAX_REAL_VALUE = 127.0f;
  20.     setSliderValue(INIT_SLIDER_VALUE);
  21. }
  22.  
  23. BuzzParameterQ::~BuzzParameterQ()
  24. {
  25. }
  26.  
  27. void BuzzParameterQ::compute()
  28. {
  29.     float valueToReach = (float)(MIN_REAL_VALUE+(currentSliderValue-MIN_SLIDER_VALUE)*(MAX_REAL_VALUE-MIN_REAL_VALUE)/(MAX_SLIDER_VALUE-MIN_SLIDER_VALUE));
  30.  
  31.     // stop !
  32.     if (timeSinceLastValueUpdate >= inertia) {
  33.         currentRealValue = valueToReach;
  34.     } 
  35.     // go smooth!
  36.     else {
  37.         currentRealValue = (float) (currentRealValue + ((valueToReach - currentRealValue) * timeBetweenTwoUpdates /  (inertia - timeSinceLastValueUpdate)));
  38.     }
  39. }
  40.  
  41. char const * BuzzParameterQ::toString(word const value)
  42. {
  43.     static char txt[50];
  44.     txt[0]=0;
  45.  
  46.     float valueToReach = (float)(MIN_REAL_VALUE+(value-MIN_SLIDER_VALUE)*(MAX_REAL_VALUE-MIN_REAL_VALUE)/(MAX_SLIDER_VALUE-MIN_SLIDER_VALUE));
  47.  
  48.     sprintf(txt,"%f",valueToReach);
  49.  
  50.     return txt;
  51.  
  52. }
  53.